<?php
	/**
	 * Arquivo: cadastro.inc
	 * @package Default
	 * @sub-package CADASTRO
	 * @page-level 1
	 */
	/**
	 * Classe de cadastros gerais
	 * @package Default
	 * @return void 
	 */
	class CADASTRO extends BANCOS
		{
		/**
		 * Identificação do usuário
		 * @access private
		 * @var integer
		 */
		private $id_user;
		/**
		 * Nível de acesso do usuário
		 * @access private
		 * @var integer
		 */
		private $nivel;
		/**
		 * Níveis de acesso
		 * @access private
		 * @var integer[]
		 */
		private $niveis;
		/**
		 * Módulo acessado
		 * @access private
		 * @var integer
		 */
		private $modulo;
		/**
		 * Controle de Paginação de resultados
		 * @access private
		 * @var integer
		 */
		private $paginacao;
		/**
		 * Construtor da classe CADASTRO
		 *
		 * @param integer $id_user identificação do usuário
		 * @param integer $nivel nível de acesso do usuário
		 * @param integer $modulo módulo acessado
		 *
		 * @return void
		 */
		public function __construct($id_user, $nivel, $modulo)
			{
			$this->id_user = substr($id_user,2,strlen($id_user));
			$this->nivel = substr($nivel,2,strlen($nivel));
			$this->niveis = array("Administrador","Escola","Cliente");
			$this->modulo = $modulo;
			
			parent::__construct();
			if ($this->modulo == 10)
				{
				$sql = "select paginacao from configuracao";
				$this->exec_query($sql);
				$this->paginacao = $this->retorno[1][0][0];
				}
			}
		/**
		 * Destrutor da classe CADASTRO
		 *
		 * @return void
		 */
		public function __destruct()
			{
			}
		/**
		 * Menu interno do sistema
		 *
		 * @return void
		 */
		public function MenuInterno()
			{
			echo ("<ul>\n");
			echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('cadastro/conteudo.php?id=".$this->modulo."&subid=1',escrever,'conteudo_interno','msg');\">Listar</a></li>\n");
			echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('cadastro/conteudo.php?id=".$this->modulo."&subid=2',escrever,'conteudo_interno','msg');\">Incluir</a></li>\n");
			echo ("</ul>\n");
			}
		/**
		 * Mostra a listagem dos registros do modulo acessado
		 *
		 * @return void
		 */
		public function listar()
			{
			switch($this->modulo)
				{
				case 6:
					{
					$sql = "select * from cadastro.setor order by descricao";
					$coluna = 2; 
					$colunas = array ("ID","Descrição"); 
					break;
					}
				case 7:
					{
					$sql = "select * from cadastro.funcao order by descricao";
					$coluna = 2; 
					$colunas = array ("ID","Descrição"); 
					break;
					}
				case 8:
					{
					$sql = "select * from cadastro.treinamento order by descricao";
					$coluna = 3;
					$colunas = array("ID","Descrição","Validade");
					break;
					}
				case 9:
					{
					$sql = "select * from cadastro.programas order by descricao";
					$coluna = 4;
					$colunas = array("ID","Descrição","Validade","Aviso");
					break;
					}
				case 10:
					{
					$pagina = floor($_GET['pagina']*$this->paginacao);
					$sql_t = "select count(*) from cadastro.cnae";
					$this->exec_query($sql_t);
					$total = $this->retorno[1][0][0];
					$paginas = ceil($total/$this->paginacao);
					$sql = "select * from cadastro.cnae order by codigo limit ".$this->paginacao." offset ".$pagina;
					$coluna = 2;
					$colunas = array("Código","Descrição");
					break;
					}
				case 13:
					{
					$sql = "select * from cadastro.atividade order by descricao";
					$coluna = 2;
					$colunas = array("ID","Descrição");
					}
				}
			$this->exec_query($sql);
			if ($this->retorno[0])
				{
				echo ("<table summary=\"contas de usuários\" border=\"1\" cellspacing=\"0\">\n");
				echo ("<tr>\n");
				for ($j=0; $j < $coluna; $j++)
					{
					echo ("<th>".$colunas[$j]."</th>\n");
					}
				echo ("</tr>\n");
				for ($i=0; $i < $this->num_registros; $i++)
					{
					$dados = $this->retorno[1][$i];
					echo ("<tr>\n");
					echo ("<td>".$dados[0]."</td>\n");
					echo ("<td>".$dados[1]."</td>\n");
					if (($this->modulo == 8)||($this->modulo == 9))
						{
						$aux_v = "meses";
						if ($dados[2] <= 1)
							{
							$aux_v = "mês";
							}
						echo ("<td>".$dados[2]." ".$aux_v."</td>\n");
						if ($this->modulo == 9)
							{
							$aux_v = "dias";
							if ($dados[2] <= 1)
								{
								$aux_v = "dia";
								}
							echo ("<td>".$dados[3]." ".$aux_v."</td>\n");
							}
						}
					if ($this->nivel <= 1)
						{
						if (($this->modulo == 6)||($this->modulo == 7)||($this->modulo == 10)||($this->modulo == 13))
							{
							echo ("<td><a href=\"#\" onclick=\"javascript:pegar('cadastro/conteudo.php?id=".$this->modulo."&subid=5&id_cad=".$dados[0]."',escrever,'sugestao_id','msg');\">Sugestões</a></td>\n");
							}
						echo ("<td><a href=\"#\" onclick=\"javascript:pegar('cadastro/conteudo.php?id=".$this->modulo."&subid=3&id_cad=".$dados[0]."',escrever,'conteudo_interno','msg');\">Alterar</a></td>\n");
						echo ("<td><a href=\"#\" onclick=\"\">Deletar</a></td>\n");
						}
					echo ("</tr>\n");
					}
				echo ("</table>\n");
				if ($this->modulo == 10)
					{
					echo ("Paginas: ");
					echo ("<select name=\"pagina\" id=\"pagina\" onchange=\"javascript:pegar('conteudo.php?id=10&pagina='+document.getElementById('pagina').value,escrever,'conteudo','msg');\">\n");
					for ($i=0; $i < $paginas; $i++)
						{
						if ($i == $_GET['pagina'])
							{
							echo ("<option value=\"$i\" selected>".($i+1)."</option>\n");
							}
						else 
							{
							echo ("<option value=\"$i\">".($i+1)."</option>\n");
							}
						}
					echo ("</select>\n");
					}
				if (($this->modulo == 6)||($this->modulo == 7)||($this->modulo == 10)||($this->modulo == 13))
					{
					echo ("<div id=\"sugestao_id\"></div>\n");
					}
				}
			}
		/**
		 * Abre o formulário para inserção de um novo registro do módulo acessado.
		 *
		 * @return void
		 */
		public function novo()
			{
			if ($this->nivel <= 1)
				{
				echo ("<form action=\"cadastro/processar.php\" method=\"POST\" id=\"frm_conta\">\n");
				echo ("<input type=\"hidden\" name=\"id\" id=\"id\" value=\"".$this->modulo."\" />\n");
				echo ("<input type=\"hidden\" name=\"op\" id=\"op\" value=\"1\" />\n");
				echo ("Descrição: <input type=\"text\" maxlength=\"255\" size=\"40\" id=\"desc\" name=\"desc\" />\n<br/>\n");
				if (($this->modulo == 8)||($this->modulo == 9))
					{
					echo ("Validade: <input type=\"text\" size=\"20\" id=\"validade\" name=\"validade\" onkeypress=\"javascrip:mascara(this,digito);\" /> (Use a quantidade em meses)<br/>\n");
					if ($this->modulo == 9)
						{
						echo ("Aviso: <input type=\"text\" size=\"20\" id=\"aviso\" name=\"aviso\" onkeypress=\"javascrip:mascara(this,digito);\" /> (Use a quantidade em dias)<br/>\n");
						}
					}
				echo ("<input type=\"button\" value=\"Inserir\" onclick=\"javascript:pegarForm_POST('conteudo_interno','frm_conta','msg');\" />\n");
				echo ("</form>\n");
				}
			else 
				{
				echo ("Nível de usuário sem permissão para essa ação.\n");
				}
			}
		/**
		 * Mostra um determinado registro selecionado.
		 *
		 * @param integer $id_cad registro selecionado.
		 *
		 * @return void
		 */
		public function mostrar($id_cad)
			{
			switch($this->modulo)
				{
				case	6:
					{
					$sql = "select * from cadastro.setor where id_setor=".$id_cad;
					break;
					}
				case 7:
					{
					$sql = "select * from cadastro.funcao where id_funcao=".$id_cad;
					break;
					}
				case 8:
					{
					$sql = "select * from cadastro.treinamento where id_treinamento=".$id_cad;
					break;
					}
				case 9:
					{
					$sql = "select * from cadastro.programas where id_programa=".$id_cad;
					break;
					}
				case 13:
					{
					$sql = "select * from cadastro.atividade where id=".$id_cad;
					break;
					}
				}
			$this->exec_query($sql);
			if ($this->retorno[0])
				{
				$dados = $this->retorno[1][0];
				echo ("<form action=\"cadastro/processar.php\" method=\"POST\" id=\"frm_conta\">\n");
				echo ("<input type=\"hidden\" name=\"id\" id=\"id\" value=\"".$this->modulo."\" />\n");
				echo ("<input type=\"hidden\" name=\"op\" id=\"op\" value=\"2\" />\n");
				echo ("<input type=\"hidden\" name=\"id_cad\" id=\"id_cad\" value=\"".$id_cad."\" />\n");
				echo ("<input type=\"hidden\" name=\"descricao_antiga\" id=\"descricao_antiga\" value=\"".$dados[1]."\"/>\n");
				echo ("Descrição: <input type=\"text\" maxlength=\"255\" size=\"40\" id=\"desc\" name=\"desc\" value=\"".$dados[1]."\" />\n<br/>\n");
				if (($this->modulo == 8)||($this->modulo == 9))
					{
					echo ("<input type=\"hidden\" name=\"validade_antiga\" id=\"validade_antiga\" value=\"".$dados[2]."\"/>\n");
					echo ("Validade: <input type=\"text\" size=\"20\" id=\"validade\" name=\"validade\" onkeypress=\"javascrip:mascara(this,digito);\" value=\"".$dados[2]."\" /> (Use a quantidade em meses)<br/>\n");
					if ($this->modulo == 9)
						{
						echo ("<input type=\"hidden\" name=\"aviso_antigo\" id=\"aviso_antigo\" value=\"".$dados[3]."\"/>\n");
						echo ("Aviso: <input type=\"text\" size=\"20\" id=\"aviso\" name=\"aviso\" onkeypress=\"javascrip:mascara(this,digito);\" value=\"".$dados[3]."\" /> (Use a quantidade em dias)<br/>\n");
						}
					}
				echo ("<input type=\"button\" id=\"alterar\" name=\"alterar\" value=\"Alterar Dados\" onclick=\"altera();\" />\n");
				echo ("<input type=\"button\" id=\"salvar\" name=\"salvar\" value=\"Salvar Dados\" onclick=\"javascript:pegarForm_POST('res_conta','frm_conta','msg');\" />\n");
				echo ("</form>\n");
				echo ("<div id=\"res_conta\"></div>\n");
				echo ("<script type=\"text/javascript\">\n");
				echo ("	<!--\n");
				echo ("		document.getElementById(\"desc\").disabled = true;\n");
				if (($this->modulo == 8)||($this->modulo == 9))
					{
					echo ("		document.getElementById(\"validade\").disabled = true;\n");
					if ($this->modulo == 9)
						{
						echo ("		document.getElementById(\"aviso\").disabled = true;\n");
						}
					}
				echo ("		document.getElementById(\"alterar\").disabled = false;\n");
				echo ("		document.getElementById(\"salvar\").disabled = true;\n");
				echo ("		function altera()\n");
				echo ("			{\n");
				echo ("			document.getElementById(\"desc\").disabled = false;\n");
				if (($this->modulo == 8)||($this->modulo == 9))
					{
					echo ("			document.getElementById(\"validade\").disabled = false;\n");
					if ($this->modulo == 9)
						{
						echo ("			document.getElementById(\"aviso\").disabled = false;\n");
						}
					}
				echo ("			document.getElementById(\"alterar\").disabled = true;\n");
				echo ("			document.getElementById(\"salvar\").disabled = false;\n");
				echo ("			}\n");
				echo ("	//-->\n");
				echo ("</script>\n");
				}
			}
		/**
		 * Mostra mensagem de erro do banco de dados
		 *
		 * @return void
		 */
		public function mensagem()
			{
			echo ("Erro na execução do SQL: ");
			echo ($this->msg_sistema);
			}
		/**
		 * Insere um novo registro na base de Dados
		 *
		 * @param mixed[] $dados 
		 *
		 * @return void
		 */
		public function inserir($dados)
			{
			switch ($this->modulo)
				{
				case 6:
					{
					if ($dados['op'] == 4)
						{
						$sql = "insert into treinamento.setor_trein values(".$dados['id_cad'].",".$dados['cod_trein'].")";
						}
					else 
						{
						$sql = "insert into cadastro.setor (descricao) values ('".$dados['desc']."');";
						}
					break;
					}
				case 7:
					{
					if ($dados['op'] == 4)
						{
						$sql = "insert into treinamento.funcao_trein values(".$dados['id_cad'].",".$dados['cod_trein'].")";
						}
					else 
						{
						$sql = "insert into cadastro.funcao (descricao) values ('".$dados['desc']."');";
						}
					break;
					}
				case 8:
					{
					$sql = "insert into cadastro.treinamento (descricao,validade) values ('".$dados['desc']."',".$dados['validade'].");";
					break;
					}
				case 9:
					{
					$sql = "insert into cadastro.programas (descricao,validade,aviso) values ('".$dados['desc']."',".$dados['validade'].",".$dados['aviso'].");";
					break;
					}
				case 10:
					{
					if ($dados['op'] == 4)
						{
						$sql = "insert into treinamento.cnae_trein values('".$dados['id_cad']."',".$dados['cod_trein'].")";
						}
					else 
						{
						$sql = "insert into cadastro.funcao (descricao) values ('".$dados['desc']."');";
						}
					break;
					}
				case 13:
					{
					if ($dados['op'] == 4)
						{
						$sql = "insert into treinamento.ativ_trein values('".$dados['id_cad']."',".$dados['cod_trein'].")";
						}
					else 
						{
						$sql = "insert into cadastro.atividade (descricao) values ('".$dados['desc']."');";
						}
					break;
					}
				}
			$this->exec_query($sql);
			if ($this->retorno[0])
				{
				return true;
				}
			else 
				{
				return false;
				}
			}
		/**
		 * Salva alteração de registro selecionado
		 *
		 * @param mixed[] $dados
		 *
		 * @return void
		 */
		public function alterar($dados)
			{
			switch ($this->modulo)
				{
				case 6:
					{
					$sql = "update cadastro.setor set descricao='".$dados['desc']."' where id_setor=".$dados['id_cad'];
					break;
					}
				case 7:
					{
					$sql = "update cadastro.funcao set descricao='".$dados['desc']."' where id_funcao=".$dados['id_cad'];
					break;
					}
				case 8:
					{
					$sql = "update cadastro.treinamento set descricao='".$dados['desc']."',validade=".$dados['validade']." where id_treinamento=".$dados['id_cad'];
					break;
					}
				case 9:
					{
					$sql = "update cadastro.programas set descricao='".$dados['desc']."',validade=".$dados['validade'].",aviso=".$dados['aviso']." where id_programa=".$dados['id_cad'];
					break;
					}
				case 13:
					{
					$sql = "update cadastro.atividade set descricao='".$dados['desc']."' where id=".$dados['id_cad'];
					break;
					}
				}
			$this->exec_query($sql);
			if ($this->retorno[0])
				{
				return true;
				}
			else 
				{
				return false;
				}
			}
		/**
		 * Cadastra sugestões de treinamento em um registro temporário
		 *
		 * @param integer $codigo
		 *
		 * @return void
		 */
		public function sugestoes($codigo)
			{
			switch($this->modulo)
				{
				case 6:
					{
					$sql = "select treinamento.* from cadastro.treinamento natural join treinamento.setor_trein where id_setor=".$codigo;
					break;
					}
				case 7:
					{
					$sql = "select treinamento.* from cadastro.treinamento natural join treinamento.funcao_trein where id_funcao=".$codigo;
					break;
					}
				case 10:
					{
					$sql = "select treinamento.* from cadastro.treinamento natural join treinamento.cnae_trein where cnae='".$codigo."'";
					break;
					}
				case 13:
					{
					$sql = "select treinamento.* from cadastro.treinamento natural join treinamento.ativ_trein where id_atividade='".$codigo."'";
					break;
					}
				}
			$this->exec_query($sql);
			if ($this->retorno[0])
				{
				echo ("<a href=\"#\" onclick=\"javascript:pegar('cadastro/sugestao.php?id=".$this->modulo."&codigo=".$codigo."',escrever,'sugestao_add','msg');\">Adicionar</a><div id=\"sugestao_add\"></div>\n");
				echo ("<table summary=\"\" border=\"1\" cellspacing=\"0\">\n");
				echo ("<tr>\n");
				echo ("<th>ID</th>\n<th>Treinamento</th>\n");
				echo ("</tr>\n");
				for ($i=0; $i < $this->num_registros; $i++)
					{
					$dados = $this->retorno[1][$i];
					echo ("<tr>\n");
					echo ("<td>".$dados[0]."</td>\n");
					echo ("<td>".$dados[1]."</td>\n");
					echo ("</tr>\n");
					}
				echo ("</table>\n");
				}
			else 
				{
				echo ($this->msg_sistema);
				} 
			}
		/**
		 * Lista treinamento disponíveis
		 *
		 * @param integer $codigo
		 *
		 * @return void
		 */
		public function listar_treinamentos($codigo)
			{
			switch($this->modulo)
				{
				case 6:
					{
					$sql = "select * from cadastro.treinamento except select treinamento.* from cadastro.treinamento natural join treinamento.setor_trein where setor_trein.id_setor=".$codigo;
					break;
					}
				case 7:
					{
					$sql = "select * from cadastro.treinamento except select treinamento.* from cadastro.treinamento natural join treinamento.funcao_trein where funcao_trein.id_funcao=".$codigo;
					break;
					}
				case 10:
					{
					$sql = "select * from cadastro.treinamento except select treinamento.* from cadastro.treinamento natural join treinamento.cnae_trein where cnae_trein.cnae='".$codigo."'";
					break;
					}
				case 13:
					{
					$sql = "select * from cadastro.treinamento except select treinamento.* from cadastro.treinamento natural join treinamento.ativ_trein where ativ_trein.id_atividade='".$codigo."'";
					break;
					}
				}
			$this->exec_query($sql);
			if ($this->retorno[0])
				{
				echo ("<select id=\"cod_trein\" name=\"cod_trein\">\n");
				echo ("<option>---</option>\n");
				for ($i=0; $i < $this->num_registros; $i++)
					{
					$dados = $this->retorno[1][$i];
					echo ("<option value=\"".$dados[0]."\">".$dados[1]."</option>\n");
					}
				echo ("</select>\n");
				}
			else 
				{
				echo ($this->msg_sistema);
				}
			}
		};
?>